package object;
/** 包装类的演示 */
public class IntegerDemo {
    public static void main(String[] args) {
        //2)包装类可以将字符串转换为对应的基本类型---必须熟练掌握
        String a = "21";
        int age = Integer.parseInt(a);//将字符串类型a转换为int类型并赋值给age
        System.out.println(age);//21----int类型

        String b = "123.456";
        double price = Double.parseDouble(b);//将字符串类型转换为double类型,并赋值给price
        System.out.println(price);//123.456----double类型


        //演示包装类的常用操作:
        //1)可以通过包装类来获取基本类型的取值范围
        int max = Integer.MAX_VALUE;//获取int最大值
        int min = Integer.MIN_VALUE;//获取int最小值
        System.out.println("int的最大值为:"+max+",最小值为:"+min);

        double max1 = Double.MAX_VALUE;//获取double最大值
        double min1 = Double.MIN_VALUE;//获取double最小值
        System.out.println("double的最大值为:"+max1+",最小值为:"+min1);

        long max2 = Long.MAX_VALUE;
        long min2 = Long.MIN_VALUE;
        System.out.println("long的最大值为:"+max2+",最小值为:"+min2);


        //自动拆装箱:
        //触发了自动装箱特性,会编译为:Integer i = Integer.valueOf(5)
        Integer i5 = 5;//基本类型到包装类-----装箱
        //触发了自动拆箱特性,会呗编译为:int j = i.intValue();
        int j = i5;//包装类到基本类型-------拆箱


        //演示包装类的定义
        Integer i1 = new Integer(500);
        Integer i2 = new Integer(500);
        System.out.println(i1==i2);//false,==是比较地址
        System.out.println(i1.equals(i2));//true,包装类重写equals()比较值了

        //valueOf()方法会复用1哥字节(-128到127)范围内的数据，建议使用valueOf()
        Integer i3 = Integer.valueOf(5);
        Integer i4 = Integer.valueOf(5);
        System.out.println(i3==i4);//true
        System.out.println(i3.equals(i4));//true,包装类重写equals()比较值了

        i3 = Integer.valueOf(500);
        i4 = Integer.valueOf(500);
        System.out.println(i3==i4);//false,因为超出了valueOf()的数据范围

        //将包装类转换位基本类型
        int i = i4.intValue();
        System.out.println(i);
























    }
}
